﻿Public Class Listado_de_Turnos_de_Empleado
    Enum estados
        valido
        invalido
    End Enum
    Dim estado As estados
    Dim acceso As New acceso_a_datos
    Private Sub Listado_de_Turnos_de_Empleado_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Me.ReportViewer1.RefreshReport()
    End Sub

    Private Sub btn_filtrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_filtrar.Click
        If validar() = estados.valido Then
            cargar_listado()
            ReportViewer1.RefreshReport()

        End If
    End Sub

    Private Sub btn_salir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Close()
    End Sub

    Private Sub cargar_listado()
        Dim sql As String

        sql = "SELECT dbo.Empleado.tipo_Doc, dbo.Empleado.numero_Doc, dbo.Empleado.nombre, dbo.Empleado.apellido, dbo.Turno.nombre AS n_turno,"
        sql += " dbo.EmpleadoxTurno.descripcion, dbo.EmpleadoxTurno.fecha_desde, dbo.EmpleadoxTurno.fecha_hasta"
        sql += " FROM dbo.Empleado INNER JOIN"
        sql += " dbo.EmpleadoxTurno ON dbo.Empleado.tipo_Doc = dbo.EmpleadoxTurno.tipo_Doc AND dbo.Empleado.numero_Doc = dbo.EmpleadoxTurno.numero_Doc INNER JOIN"
        sql += " dbo.Turno ON dbo.EmpleadoxTurno.cod_Turno = dbo.Turno.cod_Turno"
        sql += " where (fecha_desde between '" & dtp_desde.Value.Date & "' and '" & dtp_hasta.Value.Date & "')"
        sql += " or (fecha_hasta between '" & dtp_desde.Value.Date & "' and '" & dtp_hasta.Value.Date & "')"
        sql += " order by fecha_desde asc"

        TurnoEmpleadoBindingSource.DataSource = acceso._consulta(sql)

    End Sub

    Private Function validar() As estados
        If dtp_desde.Value.Date <> dtp_hasta.Value.Date Then
            If dtp_desde.Value > dtp_hasta.Value Then
                MessageBox.Show("La fecha Desde no puede ser Mayor que la fecha Hasta", "IMPORTANTE", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
                Return estados.invalido
            End If
        End If
        If dtp_desde.Value.Date > Now Then
            MessageBox.Show("La fecha desde no puede ser mayor que la fecha actual", "IMPORTANTE", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
            Return estados.invalido
        End If
        If dtp_hasta.Value.Date > Now Then
            MessageBox.Show("La fecha hasta no puede ser mayor que la fecha actual", "IMPORTANTE", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
            Return estados.invalido
        End If

        Return estados.valido
    End Function

    Private Sub btn_salir_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_salir.Click
        Close()
        Dispose()
    End Sub
    
    Private Sub btn_volver_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Close()
        Dispose()
    End Sub

    Private Sub Listado_de_Turnos_de_Empleado_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed
        Dispose()
    End Sub
End Class